import hashlib,base64,random,string

class UserService():

    @staticmethod
    def geneAuthCode(user_info):
        m = hashlib.md5()
        # 传一个实体user
        str ="%s-%s-%s-%s" %(user_info.uid,user_info.login_name,user_info.login_pwd,user_info.login_salt)
        # str加密,encode将其转换成我们的字节码
        m.update(str.encode("utf-8"))
        # m将其转换成16进制的编码
        return m.hexdigest()

    # 产生login_pwd的加密参数:md5和base4
    @staticmethod
    def genePwd( pwd,salt):
        # 初始化md5
        m = hashlib.md5()
        # 拼我们的字符串，字符串由两部分组成,base64加密pwd(encodebytes)
        str="%s-%s"%(base64.encodebytes(pwd.encode("utf-8")),salt)
        # str加密,encode将其转换成我们的字节码
        m.update(str.encode("utf-8"))
        # m将其转换成16进制的编码
        return m.hexdigest()

    @staticmethod
    def geneSalt(length=16):
        keylist = [random.choice((string.ascii_letters + string.digits)) for i in range(length)]
        return ("".join(keylist))

